This started as an experiment, during the lockdown under the first wave of the pandemic. To improve my understanding of iterators & functional programming in Rust.

In April 2020, when I read about John Conway’s death,  I remembered about his polyhedron notation. I always wanted to have a better understanding of the underlying math and I was trying to improve my Rust skills with some side project.  Suffice to say – polyhedra are a rabbit hole; and I was already down the rabbit hole that is Rust …

I implemented all the operators in Rust and also added some extensions from George Hart.  Hart is undisputedly the eminence on this topic. His website is a treasure trove of knowledge, images, explanations and code.

Curiously, it seems no one has ever visualized polyhedra containing non-planar (curved) faces.  Traditionally people have tried to canonicalize the polyhedra to ensure that all faces are (as) planar (as possible) before visualizing them.

All the above polyhedra contain non-planar faces.  Some are very subtle.  I am currently investigating what the ideal visually pleasing ratio between planar and non-planar faces is.



Above you can see a shape that only contains non-planar faces.  In my opinion this looks less interesting.  Additionally all the faces have almost the same curvature.

My research so far suggests that face configurations where the area of planar and non-planar faces that are adjacent to each other approximates the golden ratio looks best.

Similarly, a shape where the overall area of planar to non-planar faces approximates the golden ration has the best ‘shape contrast’.  Think of ‘texture’ or ‘contrast’ as a function of curvature.

It may also be that simply having a curvature ratio that approximates the golden ratio on adjacent faces will have the same effect.  That meant a shape like the above, where all faces are non-planar, may look interesting too.  But only once the average value of the curvature varies enough between adjacent faces.

The look I was going for was something between photorealism and 1980’s airbrush illustrations.

Everything was rendered using the fantastic 3Delight renderer and their 3Delight Cloud service.


Polyhedra
Published:

Polyhedra

Published: